package com.spring_mysql_redis.service;

import com.spring_mysql_redis.dto.UserLikCountDTO;
import com.spring_mysql_redis.dto.UserLikesDto;
import com.spring_mysql_redis.model.ResultFormat;
import org.springframework.scheduling.annotation.Async;

import java.util.List;

public interface UserLikesService {

    public Integer selectLike(Integer dynamicId, Integer userId);

    //点赞
    public Integer likes(String dynamicId, String userId);

    //不点赞
    public void unLikes(String dynamicId, String userId);

    //点赞操作方法
    public Object likeState(Integer dynamicId, Integer userId);

    //返回redis中的（动态id::用户id）list
    public List<UserLikesDto> getLikedDataFromRedis();

    //返回redis中的动态id列数list
    public List<UserLikCountDTO> getLikedCountFromRedis();

    //保存赞到mysql
    public String saveData();

    //删除redis中的（动态id::用户id）
    public String delLikedDataFromRedis();

    //更新动态赞数
    Integer updateDynamicLikes(Integer dynamicId);

    @Async
    void delLikeList(Integer dynamicId);
}
